With the advent of the Internet and the World Wide Web (WWW), the need for high-speed transmission of data including video and audio has continued to increase. Moreover, in addition to the demand for higher bandwidth, there has also been an increased need for ensuring sufficient quality of service for data flows associated with, for example, streaming audio or visual applications. A typical network element, such as, for example, a router, comprises several ports, to store, queue, and transfer data flows. These ports usually take turns transmitting packets from various data flows. Usually, each port will transmit one packet during its turn. These packets will often vary in size. A problem emerges when one port contains many large packets having many bytes of data in each packet and another port contains many small packets having few bytes of data in each packet. In such a circumstance, one port may use a far greater proportion of the network element's limited transmission bandwidth than another port due to more bytes being transferred per packet. This may result in the provision of an unsatisfactory quality of service for the data flows being forced to use a lesser proportion of the network element's bandwidth. Additionally, backlog to starved ports can cause packet truncation and force packet retransmission, further deteriorating the quality of service for associated data flows.
Each port is typically connected to an interface of a network element. A network element may have several such interfaces, each connected to one or more ports. It is the typical practice for all of the ports connected to one interface to transfer packets before the next interface is given a turn to transfer. This may result in undesirably long gaps between bursts of data transmission, which causes some data flows, such as data flows associated with audio or visual applications, to seem to stutter. If the gap in transmission is sufficiently long, a user of an application receiving the data flow may erroneously believe that the application has ceased to function. Using currently existing techniques, the allocation of limited network element bandwidth among ports may in many circumstances become disadvantageously unbalanced.